// error-monitor-sdk 入口文件
// 导出 SDK 主体、类型定义、工具函数、各类监控器和上报器，供外部使用

// 导出主要SDK类
export { ErrorMonitorSDKImpl } from './sdk'; // 导出SDK主类实现
export { createErrorMonitorSDK, getErrorMonitorSDK } from './sdk'; // 导出SDK工厂函数和获取实例方法
export { createErrorMonitorSDK as default } from './sdk'; // 默认导出SDK工厂函数

// 导出类型定义
export type {
  SDKConfig, // SDK配置类型
  ErrorInfo, // 错误信息类型
  PerformanceInfo, // 性能信息类型
  BehaviorInfo, // 行为信息类型
  ReportData, // 上报数据类型
  EventListener, // 事件监听器类型
  ErrorMonitorSDK // SDK实例类型
} from './types'; // 从 types 模块导出所有类型

// 导出工具函数
export {
  generateId, // 生成唯一ID
  generateSessionId, // 生成会话ID
  getElementSelector, // 获取元素选择器
  getElementText, // 获取元素文本内容
  getCurrentUrl, // 获取当前页面URL
  getUserAgent, // 获取用户代理
  getBrowserInfo, // 获取浏览器信息
  getScreenInfo, // 获取屏幕信息
  getNetworkInfo, // 获取网络信息
  deepClone, // 深度克隆对象
  throttle, // 节流函数
  debounce, // 防抖函数
  formatErrorStack, // 格式化错误堆栈
  shouldSample, // 判断是否采样
  getPerformanceMetrics // 获取性能指标
} from './utils'; // 从 utils 模块导出所有工具函数

// 导出监控器类
export { ErrorMonitor } from './monitors/errorMonitor'; // 导出错误监控器
export { PerformanceMonitor } from './monitors/performanceMonitor'; // 导出性能监控器
export { BehaviorMonitor } from './monitors/behaviorMonitor'; // 导出行为监控器

// 导出上报器类
export { Reporter } from './reporters/reporter'; // 导出上报器 